<

アプリのサイズを測定する

多くの開発者は、コンパイルされたアプリのサイズを懸念しています。 Flutter アプリの APK、アプリバンドル、または IPA バージョンは 自己完結型で、アプリの実行に必要なすべてのコードとアセットを保持します。 そのサイズが懸念されるかもしれません。アプリが大きくなればなるほど、 デバイス上で必要なスペースが増えるほど、 ダウンロードに時間がかかるほど、 そしてそれは有用な限界を突破するかもしれません Androidインスタントアプリのような機能。

デバッグ ビルドは代表的なものではありません

デフォルトでは、アプリを起動するにはflutter run、 または、遊ぶIDE のボタン (で使用されるように)試乗初めての Flutter アプリを作成する)、 を生成しますデバッグFlutter アプリのビルド。 デバッグ ビルドのアプリ サイズは次の理由で大きくなります。 ホットリロードを可能にするデバッグのオーバーヘッド そしてソースレベルのデバッグ。したがって、これは作品を代表するものではありません アプリのエンドユーザーがダウンロードします。

合計サイズの確認

デフォルトのリリース ビルド (次のように作成されたビルド)flutter build apkまたflutter build ios、アップロード パッケージを簡単に組み立てられるように構築されています。 Play ストアと App Store へ。したがって、それらは代表的なものでもありません エンドユーザーのダウンロード サイズ。ストアは通常、再処理して分割します 特定のダウンローダーとダウンローダーのターゲットをターゲットにするアップロード パッケージ ハードウェア(携帯電話の DPI をターゲットとするアセットのフィルタリング、フィルタリングなど) 携帯電話の CPU アーキテクチャをターゲットとしたネイティブ ライブラリ。

合計サイズの見積もり

各プラットフォームで最も近いおおよそのサイズを取得するには、次のコマンドを使用します。 手順。

アンドロイド

GoogleをフォローしてくださいPlay Console の説明書アプリのダウンロードを確認するためと、 インストールサイズ。

アプリケーションのアップロード パッケージを作成します。

flutter build appbundle

にログインしますGoogle Playコンソール。アプリケーションのバイナリをドラッグしてアップロードします .aab ファイルをドロップします。

アプリケーションのダウンロードおよびインストールのサイズを表示します。アンドロイドのバイタル->アプリのサイズタブ。

App size tab in Google Play Console

ダウンロード サイズは、XXXHDPI (~640dpi) デバイスに基づいて計算されます。 arm64-v8a アーキテクチャ。エンドユーザーのダウンロード サイズは、状況に応じて異なる場合があります。 彼らのハードウェア。

上部のタブには、ダウンロード サイズとインストール サイズの切り替えがあります。ページも 最適化のヒントは以下に記載されています。

iOS

を作成しますXcode アプリ サイズ レポート。

まず、「」の説明に従ってアプリのバージョンとビルドを構成します。iOS のビルド アーカイブの作成手順

それから:

  1. 走るflutter build ipa --export-method development
  2. 走るopen build/ios/archive/*.xcarchiveXcode でアーカイブを開きます。
  3. クリックアプリを配布する
  4. 配布方法を選択します。発達そうでない場合は最も簡単です アプリケーションを配布する予定です。
  5. アプリの細化、「互換性のあるすべてのデバイス バリアント」を選択します。
  6. 選択するSwift シンボルを削除する

IPAに署名してエクスポートします。エクスポートされたディレクトリには次のものが含まれますApp Thinning Size Report.txtあなたのプロジェクトに関する詳細 さまざまなデバイスや iOS のバージョンでのアプリケーションのサイズ。

Flutter 1.17 のデフォルトのデモ アプリのアプリ サイズ レポートは次のように表示されます。

Variant: Runner-7433FC8E-1DF4-4299-A7E8-E00768671BEB.ipa
Supported variant descriptors: [device: iPhone12,1, os-version: 13.0] and [device: iPhone11,8, os-version: 13.0]
App + On Demand Resources size: 5.4 MB compressed, 13.7 MB uncompressed
App size: 5.4 MB compressed, 13.7 MB uncompressed
On Demand Resources size: Zero KB compressed, Zero KB uncompressed

この例では、アプリには近似値があります。 ダウンロード サイズは 5.4 MB で、およそ iPhone12,1 のインストール サイズは 13.7 MB (モデルID / ハードウェア 番号iPhone11用) iOS 13.0を実行しているiPhone11、8(iPhone XR)。

iOS アプリを正確に測定するには、 リリース IPA を Apple にアップロードする必要があります App Store コネクト (手順) そこからサイズレポートを取得します。 説明したように、IPA は通常 APK よりも大きくなります のFlutter エンジンの大きさはどれくらいですか?、 Flutter のセクションよくある質問

サイズの内訳

Flutter バージョン 1.22 および DevTools バージョン 0.9.1 以降、 開発者が内訳を理解するのに役立つサイズ分析ツールが含まれています アプリケーションのリリース ビルドの。

サイズ分析ツールは、--analyze-sizeフラグを立てるとき 建物:

  • flutter build apk --analyze-size
  • flutter build appbundle --analyze-size
  • flutter build ios --analyze-size
  • flutter build linux --analyze-size
  • flutter build macos --analyze-size
  • flutter build windows --analyze-size

このビルドは 2 つの点で標準リリース ビルドとは異なります。

  1. このツールは、Dart のコード サイズ使用量を記録する方法で Dart をコンパイルします。 パッケージ。
  2. このツールには、サイズの内訳の概要が表示されます。 ターミナルで、*-code-size-analysis_*.jsonさらに詳しくファイルする DevTools での詳細な分析。

単一のビルドを分析するだけでなく、次の方法で 2 つのビルドの差分を比較することもできます。 2つロード中*-code-size-analysis_*.jsonファイルを DevTools に追加します。見る開発ツールのドキュメント詳細については。

Size summary of an Android application in terminal

概要を通じて、カテゴリごとのサイズの使用状況を簡単に把握できます。 (アセット、ネイティブ コード、Flutter ライブラリなど)。コンパイルされた Dart ネイティブ ライブラリは、迅速に分析できるようにパッケージごとにさらに分類されています。

DevTools でのより深い分析

*-code-size-analysis_*.json上記で作成されたファイルはさらに追加できます DevTools でツリーまたはツリーマップ ビューを使用してさらに詳細に分析できます。 アプリケーションのコンテンツを個々のファイルレベルに分割し、 Dart AOT アーティファクトの機能レベルまで。

これは次の方法で実行できますflutter pub global run devtools、選択Open app size toolそしてJSONファイルをアップロードします。

Example breakdown of app in DevTools

DevTools アプリ サイズ ツールの使用方法の詳細については、「」を参照してください。開発ツールのドキュメント

アプリのサイズを小さくする

アプリのリリースバージョンをビルドするときは、 の使用を検討してください--split-debug-info鬼ごっこ。 このタグにより、コード サイズが大幅に削減されます。 このタグの使用例については、を参照してください。Dartコードの難読化

アプリを小さくするために他にできることは次のとおりです。

  • 使用されていないリソースを削除する
  • ライブラリからインポートされるリソースを最小限に抑える
  • PNG および JPEG ファイルを圧縮する